#include "read.h"


int judge1(void)//抽出某一帧后该帧删除
{
    char video[60] = {0};//模拟60帧的视频中的帧数
    char pullout[60] = {0};//模拟输出的每一帧所在的数组
    int medium = 0;//每隔多少帧截取一份
    int times = 0;//一共截取多少帧
    int now = 0;//现在需要截取的帧
    int countAll;//视频帧数计数器
    int countTail;//从截取的那一帧开始到最后一帧的计数器
    int items;//截取完后剩余总帧数


    for(countAll =0; countAll<60; countAll++)
    {
        video[countAll] = countAll;
    }//创建模拟视频帧的数组

    items = countAll;//当没有截取的时候，剩余总帧数为总帧数


    printf("此为从原视频帧中剪切所选帧，被选出的帧在原视频中需要删除，所以所选的间隔距离以及剪切次数需要在总帧数的限制内\n\n");
    printf("输入从哪一帧开始剪切(0-59中的一个数)\n");
    scanf("%d", &now);
    printf("输入每间隔多少帧剪切一次（0-59中的一个数）\n");
    scanf("%d", &medium);
    printf("输入剪切次数（0-59中的一个数）\n");
    scanf("%d", &times);
    printf("\n");
    printf("输出抽取出来的帧\n");

    for(countAll=0; countAll<times; countAll++)//一共截取多少次
    {
        if(now > items)//如果后挪中间差量了之后，已经超过了数组最后，那么重新从数组最前面开始循环
        {
            now = now - items;
        }

        pullout[countAll] = video[now];
        printf("%d  ", pullout[countAll]);//将now所指向的帧输出

        items--;//这个循环中的帧被截取了之后，总的帧数-1

        for(countTail=now; countTail<items; countTail++)//从now开始，一直到最后一帧-1（因为在此循环中，已经被截取一帧了）
        {
            video[countTail] = video[countTail+1];//每一帧等于其后面一帧的值
        }
        now = now + medium+1-1;//中间相隔medium帧，所以下一帧应该是now+medium+1，但是因为我们删除了已经被选出的帧，所以整体左移了一位，此时需要-1来保证删除本应删除的帧，否则会删大一位的帧
    }

    return 0;
}


int judge2(void)//抽出某一帧后该帧不删除
{
    char video[60] = {0};//模拟60帧的视频中的帧数
    char pullout[60] = {0};//模拟输出的每一帧所在的数组
    int medium = 0;//每隔多少帧截取一份
    int times = 0;//一共截取多少帧
    int now = 0;//现在需要截取的帧
    int countAll;//视频帧数计数器
    int items;//截取完后剩余总帧数


    for(countAll =0; countAll<60; countAll++)
    {
        video[countAll] = countAll;
    }//创建模拟视频帧的数组

    items = countAll;//总帧数不变


    printf("此为从原视频帧中复制所选帧，被选出的帧在原视频中不需要删除，所以所不用考虑复制次数等等\n\n");
    printf("输入从哪一帧开始复制(0-59中的数字)\n");
    scanf("%d", &now);
    printf("输入每间隔多少帧复制一次（0-59中的数字）\n");
    scanf("%d", &medium);
    printf("输入复制次数\n");
    scanf("%d", &times);
    printf("抽取出来的帧\n");


    for(countAll=0; countAll<times; countAll++)//一共截取多少次
    {
        if(now >= items)//如果后挪中间差量了之后，已经超过了数组最后，那么重新从数组最前面开始循环
        {
            now = now - items;
        }

        pullout[countAll] = video[now];
        printf("%d  ", pullout[countAll]);//将now所指向的帧输出
        now = now + medium+1;//中间相隔medium帧，所以下一帧应该是now+medium+1
    }

    return 0;
}

